package com.mc.dao.Impl;

import java.sql.*;

/**
 * @author fyp
 * 数据访问的基类（父类）
 */
public class BaseDao {

    /**
     * 连接对象
     */
    protected Connection conn=null;

    /**
     * 预编译指令对象
     */
    protected PreparedStatement pstmt=null;

    /**
     * 结果集对象
     */
    protected ResultSet rs=null;

    /**
     * 注册驱动（加载驱动）
     */
    public void regist(){
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    /**
     * 创建数据库连接
     */
    public void connection(){
        try {
            conn= DriverManager.getConnection("jdbc:mysql://localhost/mc","root","root");
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }

    /**
     * 创建预编译指令
     * @param sql 语句
     */
    public void getPst(String sql){
        try {
            pstmt=conn.prepareStatement(sql);
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }

    /**
     * 得到结果集
     */
    public void getRs(){
        try {
            rs=pstmt.executeQuery();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }

    /**
     * 关闭数据库链接
     */
    public void close(){
        if(rs!=null){
            try {
                rs.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
        if(pstmt!=null){
            try {
                pstmt.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
        if(conn!=null){
            try {
                conn.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }
}
